package main

import (
	"alist-gui/res"
	"alist-gui/ui"
	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/driver/desktop"
	"fyne.io/fyne/v2/theme"
)

// .\svgtopng\main.exe --svg .\logo.svg --png res\logo.png
//
// fyne package -os windows -icon res/logo.png  --appID io.alist-gui.com  --release true
//
//	--release true
func main() {
	a := app.NewWithID("io.alist-gui.com")
	w := a.NewWindow("Alist")
	w.Resize(fyne.NewSize(400, 300))
	w.CenterOnScreen()
	w.SetIcon(res.LogoRes)

	alistUi, cancel, err := ui.NewAlistUi(w)
	if err != nil {
		panic(err)
	}
	setDesk(a, w, cancel)
	w.SetContent(alistUi)
	w.ShowAndRun()
}

func setDesk(a fyne.App, w fyne.Window, cancel func()) {
	if desk, ok := a.(desktop.App); ok {
		w.SetCloseIntercept(func() { w.Hide() })

		quitMenuItem := fyne.NewMenuItem("退出", func() {
			if cancel != nil {
				cancel()
			}
			a.Quit()
		})
		quitMenuItem.IsQuit = true
		quitMenuItem.Icon = theme.CancelIcon()

		mainMenuItem := fyne.NewMenuItem("打开", func() {
			w.Show()
		})
		// 2024/11/8 15:40 用自己的图标会出现desktop重复显示问题原因不明
		mainMenuItem.Icon = res.AlistPngRes

		m := fyne.NewMenu("Alist",
			mainMenuItem,
			fyne.NewMenuItemSeparator(),
			quitMenuItem)
		desk.SetSystemTrayMenu(m)
	}
}
